<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<item
android:id="@+id/reset"
android:title="RESET"
android:visible="true"
app:showAsAction="always|withText" />
</menu>
menu:選單項目的容器,其下可包含多的 item
item:MenuItem ,代表選單中的單一項目,以下為幾個基本性質:
android:id="" :選單項目獨有的 id ,可用來識別使用者點擊的項目為何
android:icon="" :設定選單項目的圖示
android:title="" :設置選單項目的標題名稱
app:showAsAction="" :選單項目的顯示方式,有下列幾種:
always:無論如何都將選單項目顯示在標題欄中
never:標題欄中會有一個三圓點圖示按鈕,選單項目將顯示在點擊三圓點按鈕後彈出的選單中
ifRoom:在標題欄空間許可的狀況下會顯示在標題欄,過多的項目將顯示在三圓點的選單中
withText:預設情況在標題欄中項目若有 icon 會顯示 icon,若無 icon 會顯示 title ,
若有 icon 且設置 withText 則會在標題欄空間許可情況下盡量同時顯示 icon 和 title。
#三圓點的選單中,項目將只顯示 title
若要同時顯示 icon 將需另外從 res/values/styles.xml 中設置
設定點擊事件
button.setOnClickListener {
a = a+1
textView.setText(a.toString())
}
override fun onCreateOptionsMenu
初始化標題欄的方法,透過 inflate 方法載入自定義的 menu
( inflate 方法將在之後的文章中介紹 )
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
super.onCreateOptionsMenu(menu)
menuInflater.inflate(R.menu.menu_main, menu)
return true
}
override fun onOptionsItemSelected
當標題欄被使用者選擇時會呼叫此方法,因此在此方法中設定自定義 MenuItem 的事件
override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == R.id.reset) {
a = 0
textView.setText(a.toString())
}
return true
}